(function($) {
	$.fn.sidebarMenu = function(options) {
		options = $.extend({}, $.fn.sidebarMenu.defaults, options || {});
		var target = $(this);
		target.addClass('layui-nav');
		target.addClass('layui-nav-tree');
		if (options.data) {
			init(target, options.data, options.root);
		} else {
			if (!options.url)
				return;
			$.getJSON(options.url, options.param, function(data) {
				init(target, data, options.root);
				layui.element.render('nav');
			});
		}
		var url = window.location.pathname;

		function init(target, data, pid) {
			for (var i = 0; i < data.length; i++) {
				var item = data[i];
				if (item.parentId == options.root) {
					data.splice(i, 1);
					init(target, data, item.id);
					continue;
				}
				if (item.parentId != pid) {
					continue;
				}
				if (item.parentId == 'root') {
					var li = $('<li class="layui-nav-item"></li>');
				} else {
					var li = $('<dd></dd>');
				}
				var a = $('<a></a>');
				var icon = $('<i></i>');
				icon.addClass('layui-icon');
				icon.addClass(item.icon);
				var text = $('<cite>' + item.text + '</cite>');
				a.append(icon);
				a.append(text);
				if (item.url != "" && item.url != undefined) {
					a.attr('data-text', item.text);
					a.attr('lay-href', item.url);
					li.append(a);
				} else {
					a.attr('href', '#');
					a.addClass('dropdown-toggle');
					var arrow = $('<span></span>');
					arrow.addClass('layui-nav-more');
					a.append(arrow);
					li.append(a);
					var menus = $('<dl></dl>');
					menus.addClass('layui-nav-child');
					init(menus, data, item.id);
					li.append(menus);
				}
				target.append(li);
			}
		}
	}

	$.fn.sidebarMenu.defaults = {
			url : null,
			param : null,
			data : null,
			root : "0"
	};
})(jQuery);
